﻿//2962. 统计最大元素出现至少 K 次的子数组
//给你一个整数数组 nums 和一个 正整数 k 。
//请你统计有多少满足 「 nums 中的 最大 元素」至少出现 k 次的子数组，并返回满足这一条件的子数组的数目。
//子数组是数组中的一个连续元素序列。


class Solution {
public:
    long long countSubarrays(vector<int>& nums, int k)
    {
        int target = *max_element(nums.begin(), nums.end());
        long long ans = 0;
        int left = 0;
        int right = -1;
        int n = nums.size();
        int cnt = 0;
        for (right = 0; right < n; right++)
        {
            if (nums[right] == target)   cnt++;
            while (cnt >= k)
            {
                if (nums[left++] == target)   cnt--;
            }
            ans += left;
        }
        return ans;
    }
};